﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            Score();
Bank();

        }

        //第一题：
        //一个考试管理系统，需要录入考生成绩，只能录入数字，否则会报类型转换异常。
        //请编写相关代码，
        //1、捕获FormatException异常，并打印输出“异常已处理；
        //2、捕获OverflowException异常，数值超出double范围的异常，并打印输出“异常已处理；
        //3、捕获一般异常Exception异常。
        //4、最终处理finally
        //录入成绩结束后，请输出，总学生数，总分数，平均分。

        public static void Score()
        {
            try
            {
                int renshu = 0;//总人数
                float fenshu = 0;//总分数
                float avg = 0;//平均分
                string no = null;

                while (true)
                {
                    Console.WriteLine("请输入考试分数");
                    float num = float.Parse(Console.ReadLine());

                    Console.WriteLine("还要继续输入吗？（y/n）");
                    no = Console.ReadLine();
                    if (no.Equals("y"))
                    {
                        renshu++;
                        for (int i = 0; i < renshu; i++)
                        {
                            fenshu = fenshu + num;
                            break;
                        }
                       
                    }
                    else
                    {
                        renshu++;
                        for (int i = 0; i < renshu; i++)
                        {
                            fenshu = fenshu + num;
                            break;
                        }
                    break;
                    }
                }
            avg = fenshu / renshu;
                Console.WriteLine("总人数：{0}，总分数：{1}，平均分{2}", renshu, fenshu, avg);
            }

            catch (FormatException)
            {
                Console.WriteLine("异常已处理");
            }
            catch (OverflowException)
            {
                Console.WriteLine("超出范围异常已处理");
            }
            catch (Exception)
            {
                Console.WriteLine("异常已处理");
            }
            finally
            {
                Console.WriteLine("最终处理");
            }
        }
        //第二题：
        //编写一个程序，用以接收用户输入的两个浮点型的数值，一个值表示用户想要存放在银行账户中的余额，
        //另一个值表示用户想要从银行账户中提取的金额。
        //实现存取款功能，
        //用户功能选择：1、存款，2、取款
        //取款时：
        //当用户想要提取的金额大于余额时，请手动抛出一个ArgumentOutOfRangeException
        //参数超出范围的异常，异常信息可以写“取款金额大于余额，请重新输入”
        //，如此以确保取款金额始终不大于当前余额。
        //操作结束，打印输出余额是多少。
        //最后再添加catch一般异常 Exception，使得数据类型转换的异常也能被捕获到。
        public static void Bank()
        {
            try
            {

                float cunkuan = 0;//存款
                float qukuan = 0;//取款
                ArrayList list = new ArrayList();
                while (true)
                {
                    Console.WriteLine("请输入您要选择的功能：1、存款 2、取款");
                    int key = int.Parse(Console.ReadLine());
                    switch (key)
                    {
                        case 1:
                            Console.WriteLine("请输入存款金额");
                            cunkuan = float.Parse(Console.ReadLine());
                            list.Add(cunkuan);
                            Console.WriteLine("存款金额是{0}",cunkuan);
                            break;
                        case 2:
                            Console.WriteLine("请输入取款金额");
                            qukuan = float.Parse(Console.ReadLine());
                            if (qukuan>cunkuan)
                            {
                                throw new Exception("取款金额大于余额，请重新输入");
                            }
                            else
                            {
                                Console.WriteLine("取款成功！剩余余额{0}",cunkuan-qukuan);
                            }
                            break;
                        default:
                            break;
                    }
                }
            }
            catch (Exception)
            {
                Console.WriteLine("数据类型转换的异常");
                throw;
            }
        }
    }
}
